package com.example.emos.wx.user.service;

import cn.hutool.json.JSONObject;
import com.example.emos.wx.user.model.pojo.TbUser;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;

/**
 * 用户表业务层接口
 *
 * @Author YinXi
 * @Versin 1.0.0
 * @Date 2023/8/4
 */
public interface UserService {
    /**
     * 注册用户业务
     *
     * @param registerCode 激活码
     * @param code         临时授权字符串
     * @param nickname     昵称
     * @param photo        头像
     * @return 是否成功注册的条数
     */
    int registerUser(String registerCode, String code, String nickname, String photo);

    /**
     * 获取用户对应的权限列表
     *
     * @param userId 用户ID
     * @return 权限列表集合
     */
    Set<String> searchUserPermissions(int userId);

    /**
     * 登录业务接口
     *
     * @param code 微信的临时授权字符串
     * @return 用户的id
     */
    Integer login(String code);

    /**
     * 根据id查询用户信息
     *
     * @param userId 用户id
     * @return 用户
     */
    TbUser searchById(int userId);

    /**
     * 查询用户的入职日期
     *
     * @param userId 用户id
     * @return 入职日期
     */
    String searchUserHiredate(int userId);

    /**
     * 获取用户的我的信息
     * @param userId
     * @return
     */
    HashMap searchUserSummary(int userId);

    ArrayList<HashMap> searchUserGroupByDept(String keyword);

    ArrayList searchMembers(List param);

    String searchMemberEmail(int id);

    List<HashMap> selectUserPhotoAndName(List param);

    void insertUser(HashMap param);

    HashMap searchUserInfo(Integer userId);

    int updateUserInfo(HashMap param);

    void deleteUserById(Integer id);

    JSONObject searchUserContactList();
}
